package net.dgg.dggcloud.service.jrcrm.entity.customer;


import net.dgg.dggcloud.core.util.StringUtils;
import net.dgg.dggcloud.service.entity.BaseEntity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 * 客户公积金信息
 * @ClassName: AttrAccFund-客户公积金
 * @Author: 周潮
 * @Date: 2017年11月03 14:28:28
 * @Version V1.0
 */
@Entity
@Table(name = "cus_attr_acc_fund")
public class AttrAccFund extends BaseEntity {

    //数据库表名
    public static final String TABLE_NAME = "cus_attr_acc_fund";

    /**
     * 客户id 
     */
    @Column(name = "customer_id")
    private Long customerId;

    /**
     * 公积金所有内容前台展示用
     */
    @Transient
    private String frontShow;

    /**
     * 公积金基数 
     */
    @Column(name = "acc_fund_base")
    private Double accFundBase;

    /**
     * 公积金基数-前台展示用
     */
    @Transient
    private String accFundBaseShow;

    /**
     * 缴纳年限 
     */
    @Column(name = "payment_years")
    private Double paymentYears;

    /**
     * 缴纳年限 -前台展示用
     */
    @Transient
    private String paymentYearsShow;

    /**
     * 购买单位
     */
    @Column(name = "purchase_unit")
    private String purchaseUnit;

    /**
     * 购买单位 -前台展示用
     */
    @Transient
    private String purchaseUnitShow;

    /**
     * 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     */
    @Column(name = "read_flag")
    private String readFlag;

    /**
     * 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     */
    @Column(name = "source_flag")
    private String sourceFlag;

    /**
     * 扩展字段1 
     */
    @Column(name = "ext1")
    private String ext1;

    /**
     * 扩展字段2 
     */
    @Column(name = "ext2")
    private String ext2;

    /**
     * 扩展字段3 
     */
    @Column(name = "ext3")
    private String ext3;

    /**
     * 扩展字段4 
     */
    @Column(name = "ext4")
    private String ext4;

    /**
     * 扩展字段5 
     */
    @Column(name = "ext5")
    private String ext5;

    /**
     * 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     * @return read_flag 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public String getReadFlag() {
        return readFlag;
    }

    /**
     * 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     * @param readFlag 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public void setReadFlag(String readFlag) {
        this.readFlag = readFlag == null ? null : readFlag.trim();
    }

    /**
     * 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     * @return source_flag 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public String getSourceFlag() {
        return sourceFlag;
    }

    /**
     * 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     * @param sourceFlag 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public void setSourceFlag(String sourceFlag) {
        this.sourceFlag = sourceFlag == null ? null : sourceFlag.trim();
    }

    /**
     * 客户id 
     * @return customer_id 客户id 
     */
    public Long getCustomerId() {
        return customerId;
    }

    /**
     * 客户id 
     * @param customerId 客户id 
     */
    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    /**
     * 公积金基数 
     * @return acc_fund_base 公积金基数 
     */
    public Double getAccFundBase() {
        return null != accFundBase ? accFundBase/100 : null;
    }

    /**
     * 公积金基数 
     * @param accFundBase 公积金基数 
     */
    public void setAccFundBase(Double accFundBase) {
        this.accFundBase = (null != accFundBase ? accFundBase*100 : null);
    }

    /**
     * 缴纳年限 
     * @return payment_years 缴纳年限
     */
    public Double getPaymentYears() {
        return paymentYears;
    }

    /**
     * 缴纳年限 
     * @param paymentYears 缴纳年限
     */
    public void setPaymentYears(Double paymentYears) {
        this.paymentYears = paymentYears;
    }


    public String getPurchaseUnit() {
        return purchaseUnit;
    }

    public void setPurchaseUnit(String purchaseUnit) {
        this.purchaseUnit = purchaseUnit;
    }



    /**
     * 扩展字段1 
     * @return ext1 扩展字段1 
     */
    public String getExt1() {
        return ext1;
    }

    /**
     * 扩展字段1 
     * @param ext1 扩展字段1 
     */
    public void setExt1(String ext1) {
        this.ext1 = ext1 == null ? null : ext1.trim();
    }

    /**
     * 扩展字段2 
     * @return ext2 扩展字段2 
     */
    public String getExt2() {
        return ext2;
    }

    /**
     * 扩展字段2 
     * @param ext2 扩展字段2 
     */
    public void setExt2(String ext2) {
        this.ext2 = ext2 == null ? null : ext2.trim();
    }

    /**
     * 扩展字段3 
     * @return ext3 扩展字段3 
     */
    public String getExt3() {
        return ext3;
    }

    /**
     * 扩展字段3 
     * @param ext3 扩展字段3 
     */
    public void setExt3(String ext3) {
        this.ext3 = ext3 == null ? null : ext3.trim();
    }

    /**
     * 扩展字段4 
     * @return ext4 扩展字段4 
     */
    public String getExt4() {
        return ext4;
    }

    /**
     * 扩展字段4 
     * @param ext4 扩展字段4 
     */
    public void setExt4(String ext4) {
        this.ext4 = ext4 == null ? null : ext4.trim();
    }

    /**
     * 扩展字段5 
     * @return ext5 扩展字段5 
     */
    public String getExt5() {
        return ext5;
    }

    /**
     * 扩展字段5 
     * @param ext5 扩展字段5 
     */
    public void setExt5(String ext5) {
        this.ext5 = ext5 == null ? null : ext5.trim();
    }

    public String getAccFundBaseShow() {
        return null != getAccFundBase() ? "公积金基数【" + getAccFundBase() + "元】;" : "";
    }

    public void setAccFundBaseShow(String accFundBaseShow) {
        this.accFundBaseShow = accFundBaseShow;
    }

    public String getPaymentYearsShow() {
        return null != paymentYears ? "缴纳年限【" + paymentYears + "年】;" : "";
    }

    public void setPaymentYearsShow(String paymentYearsShow) {
        this.paymentYearsShow = paymentYearsShow;
    }

    public String getPurchaseUnitShow() {
        return StringUtils.isNotEmpty(purchaseUnit) ? "购买单位【" + purchaseUnit + "】;" : "";
    }

    public void setPurchaseUnitShow(String purchaseUnitShow) {
        this.purchaseUnitShow = purchaseUnitShow;
    }

    public String getFrontShow() {
        return "有公积金：" + getAccFundBaseShow() + getPaymentYearsShow() + getPurchaseUnitShow();
    }

    public void setFrontShow(String frontShow) {
        this.frontShow = frontShow;
    }


}